<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<script type="text/javascript">

		/*
		 * 函数 function
		 * 	- 函数也是一个对象
		 * 	- 函数中可以封装一些功能（代码），在需要时可以执行这些功能（代码）
		 * 	- 函数中可以保存一些代码在需要的时候调用
		 * 	- 使用typeof检查一个函数对象时，会返回function
		 */

		//我们在实际开发中很少使用构造函数来创建一个函数对象
		//创建一个函数对象
		//可以将要封装的代码以字符串的形式传递给构造函数
		//var fun = new Function("console.log('Hello 这是我的第一个函数');");

		//封装到函数中的代码不会立即执行
		//函数中的代码会在函数调用的时候执行
		//调用函数 语法：函数对象()
		//当调用函数时，函数中封装的代码会按照顺序执行
		//fun();

		/*
		 * 使用 函数声明 来创建一个函数
		 * 	语法：
		 * 		function 函数名([形参1,形参2...形参N]){
		 * 			语句...
		 * 		}
		 */

		function fun2() {
			console.log("这是我的第二个函数~~~");
			alert("哈哈哈哈哈");
			document.write("~~~~(>_<)~~~~");
		}

		//console.log(fun2);
		//调用fun2
		//fun2();

		/*
		 * 使用 函数表达式 来创建一个函数
		 * var 函数名  = function([形参1,形参2...形参N]){
		 * 	 语句....
		 *  }
		 */

		var fun3 = function () {
			console.log("我是匿名函数中封装的代码");
		};


		fun3();

	</script>
</head>

<body>
</body>

</html>